#!/usr/bin/env python
"""
图书馆管理系统初始数据设置脚本
"""
import os
import sys
import django
from datetime import date

# 设置Django环境
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'library_management.settings')
django.setup()

from django.contrib.auth.models import User
from books.models import Category, Book

def create_superuser():
    """创建超级用户"""
    if not User.objects.filter(username='admin').exists():
        User.objects.create_superuser('admin', 'admin@library.com', 'admin123')
        print("✅ 超级用户创建成功")
        print("   用户名: admin")
        print("   密码: admin123")
    else:
        print("ℹ️  超级用户已存在")

def create_categories():
    """创建书籍分类"""
    categories_data = [
        {'name': '文学小说', 'description': '包括现代文学、古典文学、外国文学等'},
        {'name': '国外小说', 'description': '外国作家创作的小说作品'},
        {'name': '国内小说', 'description': '中国作家创作的小说作品'},
        {'name': '教育书籍', 'description': '教育理论、教材、考试辅导等'},
        {'name': '科技计算机', 'description': '计算机科学、编程、人工智能等'},
        {'name': '历史传记', 'description': '历史事件、人物传记、考古发现等'},
        {'name': '经济管理', 'description': '经济学、管理学、商业案例等'},
        {'name': '艺术设计', 'description': '美术、设计、音乐、电影等'},
        {'name': '教育考试', 'description': '教材、考试资料、学习方法等'},
        {'name': '生活健康', 'description': '健康养生、生活技巧、心理等'},
        {'name': '自然科学', 'description': '物理、化学、生物、地理等'},
    ]
    
    created_count = 0
    for cat_data in categories_data:
        category, created = Category.objects.get_or_create(
            name=cat_data['name'],
            defaults={'description': cat_data['description']}
        )
        if created:
            created_count += 1
    
    print(f"✅ 创建了 {created_count} 个书籍分类")

def create_sample_books():
    """创建示例书籍"""
    books_data = [
        {
            'isbn': '9787020002207',
            'title': '红楼梦',
            'author': '曹雪芹',
            'category_name': '文学小说',
            'publisher': '人民文学出版社',
            'publish_date': date(1996, 1, 1),
            'description': '中国古典四大名著之一，描写了贾、史、王、薛四大家族的兴衰史。',
            'total_copies': 5,
            'location': 'A区-01-01'
        },
        {
            'isbn': '9787111213826',
            'title': 'Python编程：从入门到实践',
            'author': 'Eric Matthes',
            'category_name': '科技计算机',
            'publisher': '人民邮电出版社',
            'publish_date': date(2016, 7, 1),
            'description': 'Python编程入门经典教材，适合初学者学习。',
            'total_copies': 3,
            'location': 'B区-02-01'
        },
        {
            'isbn': '9787108018274',
            'title': '史记',
            'author': '司马迁',
            'category_name': '历史传记',
            'publisher': '生活·读书·新知三联书店',
            'publish_date': date(2006, 6, 1),
            'description': '中国历史上第一部纪传体通史，记载了上至上古传说中的黄帝时代，下至汉武帝太初年间约三千年的历史。',
            'total_copies': 2,
            'location': 'A区-03-01'
        },
        {
            'isbn': '9787115417305',
            'title': '深入理解计算机系统',
            'author': 'Randal E. Bryant',
            'category_name': '科技计算机',
            'publisher': '人民邮电出版社',
            'publish_date': date(2016, 11, 1),
            'description': '计算机系统经典教材，深入讲解计算机系统的各个方面。',
            'total_copies': 4,
            'location': 'B区-02-02'
        },
        {
            'isbn': '9787108018090',
            'title': '资本论',
            'author': '卡尔·马克思',
            'category_name': '经济管理',
            'publisher': '生活·读书·新知三联书店',
            'publish_date': date(2004, 1, 1),
            'description': '马克思主义政治经济学的经典著作，分析了资本主义生产方式。',
            'total_copies': 3,
            'location': 'C区-01-01'
        },
        {
            'isbn': '9787108018091',
            'title': '艺术的故事',
            'author': '贡布里希',
            'category_name': '艺术设计',
            'publisher': '广西美术出版社',
            'publish_date': date(2008, 4, 1),
            'description': '艺术史经典著作，以通俗易懂的方式讲述艺术发展历程。',
            'total_copies': 2,
            'location': 'D区-01-01'
        },
        {
            'isbn': '9787108018092',
            'title': '心理学与生活',
            'author': '理查德·格里格',
            'category_name': '生活健康',
            'publisher': '人民邮电出版社',
            'publish_date': date(2003, 10, 1),
            'description': '心理学入门经典教材，介绍心理学的基本概念和应用。',
            'total_copies': 3,
            'location': 'E区-01-01'
        },
        {
            'isbn': '9787108018093',
            'title': '时间简史',
            'author': '史蒂芬·霍金',
            'category_name': '自然科学',
            'publisher': '湖南科技出版社',
            'publish_date': date(2010, 4, 1),
            'description': '探索时间、空间和宇宙本质的科普经典著作。',
            'total_copies': 4,
            'location': 'F区-01-01'
        }
    ]
    
    created_count = 0
    for book_data in books_data:
        category = Category.objects.get(name=book_data['category_name'])
        book, created = Book.objects.get_or_create(
            isbn=book_data['isbn'],
            defaults={
                'title': book_data['title'],
                'author': book_data['author'],
                'category': category,
                'publisher': book_data['publisher'],
                'publish_date': book_data['publish_date'],
                'description': book_data['description'],
                'total_copies': book_data['total_copies'],
                'location': book_data['location']
            }
        )
        if created:
            created_count += 1
    
    print(f"✅ 创建了 {created_count} 本示例书籍")

def main():
    """主函数"""
    print("🚀 开始设置图书馆管理系统初始数据...")
    print()
    
    create_superuser()
    print()
    
    create_categories()
    print()
    
    create_sample_books()
    print()
    
    print("🎉 初始数据设置完成！")
    print()
    print("📋 系统信息：")
    print("   - 管理员账号: admin / admin123")
    print("   - 访问地址: http://127.0.0.1:8000/")
    print("   - 管理后台: http://127.0.0.1:8000/admin/")
    print()
    print("💡 提示：")
    print("   - 请及时修改管理员密码")
    print("   - 可以通过管理后台添加更多书籍和用户")
    print("   - 运行 'python manage.py runserver' 启动开发服务器")

if __name__ == '__main__':
    main() 